DuckDB 回测引擎 因子/策略历史赚钱吗?
2025-08-22 ~ 2026-08-21
KDJ 低位金叉(震荡指标)
242 交易日 · 前复权
01策略说明
用户定义规则 · 五要素齐全(买入/卖出时机+仓位)· 执行口径标注
买入时机K 上穿 D(金叉)且 D ≤ 35(低位区,避免高位钝化假金叉)当日收盘确认,次日开盘买入
买入仓位满仓(单标的 100%,初始资金 100 万)
卖出时机K 下穿 D(死叉)次日开盘卖出;或单日跌超 7% 止损;最长持有 10 个交易日
卖出仓位清仓(100%)
选股条件全市场 A 股,成交额 ≥1 亿(无人问津的小票不参与)
候选选择当日满足买入信号的全部股票中,选取「当日成交额最大」的 1 只(热度代理 [ASSUMED]);当日无候选则继续空仓等待
💡 策略本质:KDJ 低位金叉近 1 年 +9.1%,是 9 个新增短线策略里唯一正收益者,也是 20 个策略中少数不受「突破类」或「抄底类」单一逻辑支配的震荡指标策略。但它的收益高度依赖少数几笔——42 笔中位数为负,剔除最大单笔后
02回测总览
模型输出 · [MODEL]
正收益 · 短线指标组最佳
近 1 年 42 笔:胜率 38.1%、盈亏比 1.95、总收益 +9.1%、回撤 -41.2%——9 个新增短线策略中唯一正收益,但剔除最大单笔 +29.4% 后转为 -15.7%,收益集中度高。
结论—— KDJ 低位金叉近 1 年 +9.1%,是 9 个新增短线策略里唯一正收益者,也是 20 个策略中少数不受「突破类」或「抄底类」单一逻辑支配的震荡指标策略。但它的收益高度依赖少数几笔——42 笔中位数为负,剔除最大单笔后 -15.7%,说明「低位金叉」本身不构成稳定优势。
数据含义—— 42 笔交易、胜率 38.1%、盈亏比 1.95——属于「低胜率+中等盈亏比」组合,期望值勉强为正。限制 D≤35(低位区)确实过滤掉了高位钝化的假金叉,这与不加限制的裸 KDJ 金叉形成对比:位置约束是 KDJ 唯一有效的增强项。
失败模式—— 主要亏损来自金叉后直接破位(震荡市中 KDJ 在低位反复金叉死叉),以及持有 10 天到期仍无表现的「时间成本」单——短线指标在趋势市中容易被均线类策略甩开,在震荡市中才体现价值。
横向对比—— 20 策略排名第 4(+9.1%),在 9 个新增短线策略中排第 1。但与海龟 +79.0%、W底 +76.3% 不在一个量级;对比同为超跌逻辑的 RSI 超卖 -1.7%,KDJ 低位金叉略优,说明「K 上穿 D 的时点确认」比「单纯 RSI 读数」更有信息量。
优化方向—— ①加 MA20 上方过滤(只在中期趋势向上时做金叉,避开下跌趋势中的低位钝化反复)②金叉需放量确认(量比≥1.2)③缩短持有周期至 5-8 日并设 +8% 止盈,把「震荡指标」用在震荡段而非趋势段。
投资指导—— KDJ 低位金叉适合作为震荡市的辅助信号而非主策略——它的价值在于「低位区」这个位置约束,实盘应与均线/趋势过滤叠加使用,单纯依赖 KDJ 金叉在趋势市中会持续磨损。
03收益与回撤
策略净值 vs 沪深300 · 收盘口径
💡 近 1 年 42 笔:胜率 38.1%、盈亏比 1.95、总收益 +9.1%、回撤 -41.2%——9 个新增短线策略中唯一正收益,但剔除最大单笔 +29.4% 后转为 -15.7%,收益集中度高。
04交易明细
42 笔 · 卖出日=信号触发日次日开盘成交 · 候选=选股日满足买入信号的股票数(均选成交额最大者)
| # | 选股日 | 买入日 | 卖出日 | 触发日 | 股票 | 买价 | 卖价 | 收益 | 天数 | 候选 | 当前资金(¥) | 卖出原因 |
| 1 | 2025-08-22 | 2025-08-25 | 2025-08-28 | 2025-08-27 | 中芯国际 688981.SH | 106.0 | 102.0 | -3.80% | 3 | 516 | ¥961,964 | KDJ死叉 |
| 2 | 2025-08-29 | 2025-09-01 | 2025-09-03 | 2025-09-02 | 北方稀土 600111.SH | 56.673 | 53.512 | -5.61% | 2 | 283 | ¥908,017 | KDJ死叉 |
| 3 | 2025-09-04 | 2025-09-05 | 2025-09-11 | 2025-09-10 | 长江电力 600900.SH | 27.155 | 27.001 | -0.60% | 4 | 302 | ¥902,585 | KDJ死叉 |
| 4 | 2025-09-12 | 2025-09-15 | 2025-09-17 | 2025-09-16 | 胜宏科技 300476.SZ | 334.841 | 338.905 | +1.18% | 2 | 850 | ¥913,268 | KDJ死叉 |
| 5 | 2025-09-18 | 2025-09-19 | 2025-09-30 | 2025-09-29 | 阳光电源 300274.SZ | 139.476 | 163.135 | +16.93% | 7 | 475 | ¥1,067,914 | KDJ死叉 |
| 6 | 2025-10-09 | 2025-10-10 | 2025-10-15 | 2025-10-14 | 中兴通讯 000063.SZ | 50.394 | 50.414 | +0.01% | 3 | 1580 | ¥1,068,012 | KDJ死叉 |
| 7 | 2025-10-16 | 2025-10-17 | 2025-10-22 | 2025-10-21 | 阳光电源 300274.SZ | 158.37 | 150.277 | -5.14% | 3 | 409 | ¥1,013,114 | KDJ死叉 |
| 8 | 2025-10-23 | 2025-10-24 | 2025-10-31 | 2025-10-30 | 阳光电源 300274.SZ | 155.253 | 194.653 | +25.35% | 5 | 883 | ¥1,269,920 | KDJ死叉 |
| 9 | 2025-11-03 | 2025-11-04 | 2025-11-07 | 2025-11-06 | 香农芯创 300475.SZ | 143.947 | 157.102 | +9.11% | 3 | 645 | ¥1,385,595 | KDJ死叉 |
| 10 | 2025-11-10 | 2025-11-11 | 2025-11-13 | 2025-11-12 | 隆基绿能 601012.SH | 22.8 | 20.8 | -8.80% | 2 | 764 | ¥1,263,636 | 单日跌超7%止损 |
| 11 | 2025-11-14 | 2025-11-17 | 2025-11-19 | 2025-11-18 | 天赐材料 002709.SZ | 47.055 | 42.267 | -10.21% | 2 | 501 | ¥1,134,679 | 单日跌超7%止损 |
| 12 | 2025-11-20 | 2025-11-21 | 2025-11-26 | 2025-11-25 | 天孚通信 300394.SZ | 107.674 | 103.303 | -4.09% | 3 | 399 | ¥1,088,276 | KDJ死叉 |
| 13 | 2025-11-27 | 2025-11-28 | 2025-12-03 | 2025-12-02 | 大众公用 600635.SH | 8.085 | 7.61 | -5.91% | 3 | 591 | ¥1,024,011 | KDJ死叉 |
| 14 | 2025-12-04 | 2025-12-05 | 2025-12-15 | 2025-12-12 | 胜宏科技 300476.SZ | 273.31 | 288.134 | +5.39% | 6 | 104 | ¥1,079,245 | KDJ死叉 |
| 15 | 2025-12-16 | 2025-12-17 | 2025-12-19 | 2025-12-18 | 航天发展 000547.SZ | 22.02 | 21.25 | -3.53% | 2 | 1057 | ¥1,041,182 | KDJ死叉 |
| 16 | 2025-12-22 | 2025-12-23 | 2025-12-29 | 2025-12-26 | 天孚通信 300394.SZ | 159.365 | 150.28 | -5.73% | 4 | 489 | ¥981,517 | KDJ死叉 |
| 17 | 2025-12-30 | 2025-12-31 | 2026-01-07 | 2026-01-06 | 华友钴业 603799.SH | 68.051 | 75.447 | +10.84% | 3 | 122 | ¥1,087,897 | KDJ死叉 |
| 18 | 2026-01-08 | 2026-01-09 | 2026-01-14 | 2026-01-13 | 寒武纪 688256.SH | 952.248 | 952.255 | -0.03% | 3 | 471 | ¥1,087,578 | KDJ死叉 |
| 19 | 2026-01-15 | 2026-01-16 | 2026-01-23 | 2026-01-22 | 特变电工 600089.SH | 30.198 | 28.437 | -5.86% | 5 | 168 | ¥1,023,840 | KDJ死叉 |
| 20 | 2026-01-26 | 2026-01-27 | 2026-01-29 | 2026-01-28 | 信维通信 300136.SZ | 82.242 | 80.963 | -1.59% | 2 | 769 | ¥1,007,605 | KDJ死叉 |
| 21 | 2026-01-30 | 2026-02-02 | 2026-02-09 | 2026-02-06 | 阳光电源 300274.SZ | 152.426 | 145.729 | -4.42% | 5 | 642 | ¥963,028 | KDJ死叉 |
| 22 | 2026-02-10 | 2026-02-11 | 2026-02-13 | 2026-02-12 | 新易盛 300502.SZ | 278.282 | 258.265 | -7.22% | 2 | 1124 | ¥893,468 | KDJ死叉 |
| 23 | 2026-02-24 | 2026-02-25 | 2026-03-03 | 2026-03-02 | 中际旭创 300308.SZ | 549.35 | 570.125 | +3.75% | 4 | 687 | ¥926,989 | KDJ死叉 |
| 24 | 2026-03-04 | 2026-03-05 | 2026-03-09 | 2026-03-06 | 新易盛 300502.SZ | 274.601 | 271.077 | -1.31% | 2 | 169 | ¥914,815 | KDJ死叉 |
| 25 | 2026-03-10 | 2026-03-11 | 2026-03-13 | 2026-03-12 | 拓维信息 002261.SZ | 41.51 | 39.0 | -6.08% | 2 | 325 | ¥859,224 | KDJ死叉 |
| 26 | 2026-03-16 | 2026-03-17 | 2026-03-26 | 2026-03-25 | 比亚迪 002594.SZ | 104.241 | 106.223 | +1.87% | 7 | 255 | ¥875,308 | KDJ死叉 |
| 27 | 2026-03-27 | 2026-03-30 | 2026-04-02 | 2026-04-01 | 宁德时代 300750.SZ | 405.102 | 400.1 | -1.26% | 3 | 117 | ¥864,237 | KDJ死叉 |
| 28 | 2026-04-03 | 2026-04-07 | 2026-04-15 | 2026-04-14 | 中际旭创 300308.SZ | 607.281 | 786.07 | +29.41% | 6 | 548 | ¥1,118,415 | KDJ死叉 |
| 29 | 2026-04-16 | 2026-04-17 | 2026-04-22 | 2026-04-21 | 芯原股份 688521.SH | 237.0 | 231.15 | -2.50% | 3 | 992 | ¥1,090,473 | 单日跌超7%止损 |
| 30 | 2026-04-23 | 2026-04-24 | 2026-05-14 | 2026-05-13 | 中际旭创 300308.SZ | 899.186 | 1065.0 | +18.41% | 11 | 486 | ¥1,291,235 | 持有10天到期 |
| 31 | 2026-05-15 | 2026-05-18 | 2026-05-20 | 2026-05-19 | 润泽科技 300442.SZ | 103.575 | 96.705 | -6.66% | 2 | 418 | ¥1,205,212 | KDJ死叉 |
| 32 | 2026-05-21 | 2026-05-22 | 2026-05-26 | 2026-05-25 | 寒武纪 688256.SH | 1300.5 | 1383.01 | +6.31% | 2 | 507 | ¥1,281,315 | KDJ死叉 |
| 33 | 2026-05-27 | 2026-05-28 | 2026-06-05 | 2026-06-04 | 宁德时代 300750.SZ | 418.473 | 406.407 | -2.91% | 6 | 597 | ¥1,243,986 | KDJ死叉 |
| 34 | 2026-06-08 | 2026-06-09 | 2026-06-15 | 2026-06-12 | 君正股份 300223.SZ | 152.01 | 149.62 | -1.60% | 4 | 1001 | ¥1,224,054 | KDJ死叉 |
| 35 | 2026-06-16 | 2026-06-17 | 2026-06-25 | 2026-06-24 | 天孚通信 300394.SZ | 318.0 | 318.08 | -0.00% | 5 | 1102 | ¥1,223,995 | KDJ死叉 |
| 36 | 2026-06-26 | 2026-06-29 | 2026-07-01 | 2026-06-30 | 兆易创新 603986.SH | 779.0 | 803.0 | +3.05% | 2 | 355 | ¥1,261,338 | KDJ死叉 |
| 37 | 2026-07-02 | 2026-07-03 | 2026-07-20 | 2026-07-17 | 新易盛 300502.SZ | 510.0 | 512.0 | +0.36% | 11 | 619 | ¥1,265,906 | 单日跌超7%止损 |
| 38 | 2026-07-21 | 2026-07-22 | 2026-07-27 | 2026-07-24 | 寒武纪 688256.SH | 1320.66 | 1239.0 | -6.21% | 3 | 1394 | ¥1,187,252 | KDJ死叉 |
| 39 | 2026-07-28 | 2026-07-29 | 2026-07-31 | 2026-07-30 | 长电科技 600584.SH | 76.7 | 70.27 | -8.41% | 2 | 353 | ¥1,087,364 | 单日跌超7%止损 |
| 40 | 2026-08-03 | 2026-08-04 | 2026-08-06 | 2026-08-05 | 中际旭创 300308.SZ | 940.0 | 901.02 | -4.18% | 2 | 349 | ¥1,041,947 | 单日跌超7%止损 |
| 41 | 2026-08-07 | 2026-08-10 | 2026-08-13 | 2026-08-12 | 蓝色光标 300058.SZ | 15.71 | 16.0 | +1.82% | 3 | 221 | ¥1,060,869 | KDJ死叉 |
| 42 | 2026-08-14 | 2026-08-17 | 2026-08-21 | 2026-08-20 | 长鑫科技 688825.SH | 55.6 | 57.21 | +2.87% | 4 | 459 | ¥1,091,270 | KDJ死叉 |
💡 42 笔交易、胜率 38.1%、盈亏比 1.95——属于「低胜率+中等盈亏比」组合,期望值勉强为正。限制 D≤35(低位区)确实过滤掉了高位钝化的假金叉,这与不加限制的裸 KDJ 金叉形成对比:位置约束是 KDJ 唯一有效的增强项。
05卖出原因分布
全部平仓口径 · 共 42 笔
💡 主要亏损来自金叉后直接破位(震荡市中 KDJ 在低位反复金叉死叉),以及持有 10 天到期仍无表现的「时间成本」单——短线指标在趋势市中容易被均线类策略甩开,在震荡市中才体现价值。
0610 策略横向对比
同一引擎同一区间 · 按总收益排序 · ★=当前策略
| 排名 | 策略 | 交易 | 胜率 | 盈亏比 | 总收益 | 最大回撤 | 年化 |
| 1 | 强势股缩量回踩 MA20 趋势回踩 | 35 | 42.9% | 3.84 | +161.2% | -31.9% | +171.7% |
| 2 | 海龟唐奇安通道突破 趋势跟随 | 14 | 28.6% | 5.55 | +79.0% | -43.2% | +83.8% |
| 3 | W底双底突破 形态反转 | 21 | 42.9% | 3.34 | +76.3% | -23.1% | +80.5% |
| 4 | KDJ 低位金叉 ★ 震荡指标 | 42 | 38.1% | 1.95 | +9.1% | -41.2% | +9.5% |
| 5 | RSI 超卖反转 超跌反转 | 24 | 58.3% | 0.76 | -1.7% | -37.1% | -1.8% |
| 6 | 涨停基因缩量回踩 打板低吸 | 36 | 33.3% | 2.20 | -3.1% | -44.7% | -3.2% |
| 7 | MACD 零轴下金叉 震荡指标 | 21 | 33.3% | 2.08 | -9.5% | -46.8% | -9.9% |
| 8 | 均线粘合向上突破 形态突破 | 32 | 31.2% | 1.69 | -18.1% | -48.2% | -18.7% |
| 9 | 二连板打板接力 打板接力 | 26 | 26.9% | 3.10 | -18.8% | -61.4% | -20.2% |
| 10 | 120日新高强势追涨 动量追涨 | 27 | 44.4% | 1.19 | -19.7% | -48.0% | -20.4% |
| 11 | 向上跳空缺口放量 缺口突破 | 50 | 34.0% | 2.00 | -24.1% | -55.1% | -25.0% |
| 12 | 布林带突破 波动突破 | 19 | 21.1% | 3.29 | -27.1% | -42.2% | -28.1% |
| 13 | 强势股首阴低吸 趋势回踩 | 46 | 30.4% | 2.13 | -31.4% | -61.4% | -32.5% |
| 14 | MA20 放量突破 趋势跟随 | 25 | 24.0% | 2.01 | -34.9% | -39.6% | -36.1% |
| 15 | 缩量回踩 MA5/MA10 趋势回踩 | 33 | 27.3% | 2.04 | -38.2% | -69.0% | -39.4% |
| 16 | 放量连续阳线接力 动量追涨 | 30 | 30.0% | 1.83 | -39.3% | -63.0% | -40.5% |
| 17 | 均线多头回踩 趋势回踩 | 38 | 34.2% | 1.06 | -51.5% | -72.2% | -52.9% |
| 18 | 60日新低超跌反弹 超跌反转 | 33 | 42.4% | 0.55 | -54.3% | -56.7% | -55.8% |
| 19 | 双均线金叉趋势跟随 趋势跟随 | 18 | 22.2% | 1.43 | -54.4% | -61.7% | -55.9% |
| 20 | 涨停次日低吸 打板低吸 | 46 | 37.0% | 1.02 | -66.3% | -75.0% | -67.8% |
💡 20 策略排名第 4(+9.1%),在 9 个新增短线策略中排第 1。但与海龟 +79.0%、W底 +76.3% 不在一个量级;对比同为超跌逻辑的 RSI 超卖 -1.7%,KDJ 低位金叉略优,说明「K 上穿 D 的时点确认」比「单纯 RSI 读数」更有信息量。
07优化建议与风险
基于回测证据 · 模型输出
优化建议(按优先级)
①加 MA20 上方过滤(只①加 MA20 上方过滤(只在中期趋势向上时做金叉,避开下跌趋势中的低位钝化反复)
②金叉需放量确认(量比≥1.②金叉需放量确认(量比≥1.2)
③缩短持有周期至 5-8 日③缩短持有周期至 5-8 日并设 +8% 止盈,把「震荡指标」用在震荡段而非趋势段。
风险提示
主要亏损来自金叉后直接破位(震荡市中 KDJ 在低位反复金叉死叉),以及持有 10 天到期仍无表现的「时间成本」单——短线指标在趋势市中容易被均线类策略甩开,在震荡市中才体现价值。
满仓单标的 + 短样本期(242 交易日)——结论稳健性有限,须结合更长周期验证
单笔最大收益对总收益影响显著,需关注收益集中度(见 06 对比区提醒)
数据来源:同花顺金融数据(hithink-finance v0.1.5,本地 DuckDB v_daily_qfq 前复权日K + index history 沪深300 + symbol list 名称映射);回测区间 2025-08-22~2026-08-21(242 交易日);策略:KDJ 低位金叉(震荡指标),五要素定义见 strategies.json;口径:涨停=前复权相邻日收益率(主板 ≥+9.8%、创业板/科创板 ≥+19.8%);RSI14 为 SMA 均值口径 [ASSUMED];布林=MA20±2σ(stddev_samp);唐奇安=前 20 日最高/前 10 日最低(不含当日);交易按开盘价成交、满仓单标的、含单边 0.03% 费率(印花税未含);当前资金=初始 100 万按每笔清仓收益滚动累计;总收益含期末未平仓浮动;卖出日=信号触发日(跌超/死叉/破位等)的下一交易日,按开盘价成交;候选=选股日满足买入信号的全部股票数,均选当日成交额最大者(热度代理 [ASSUMED])。回测结果为历史数据模拟 [MODEL],不代表未来表现。仅供研究参考,不构成个人投资建议。